import time


class SmartLogger:
    """智能日志系统类"""

    """
    实现以下功能：
      多级日志：支持 DEBUG、INFO、WARNING、ERROR、CRITICAL 五个级别
      彩色输出：不同级别使用不同颜色（DEBUG-蓝色、INFO-绿色、WARNING-黄色、ERROR-红色、CRITICAL-紫色）
      时间戳：每条日志显示时间戳（格式：YYYY-MM-DD HH:MM:SS）
      文件输出：支持同时输出到屏幕和文件
      格式化表格：支持打印表格数据（自动计算列宽、对齐）
      日志统计：记录各级别日志的数量，提供统计报告
      可配置：可以设置最低日志级别（低于此级别的不显示）
    """

    def __init__(cls, min_level="DEBUG"):
        # ANSI颜色代码
        cls.BLUE = "\033[94m"
        cls.GREEN = "\033[92m"
        cls.YELLOW = "\033[93m"
        cls.RED = "\033[91m"
        cls.PURPLE = "\033[95m"

        cls.RESET = "\033[0m"

        cls.timestamp = time.strftime("%Y-%m-%d %H:%M:%S")

        cls.min_level = min_level

    def red(cls, text):
        """打印红色文本"""
        print(f"{cls.RED}[{'ERROR'}] {cls.timestamp}:", text, cls.RESET)

    def green(cls, text):
        """打印绿色文本"""
        print(f"{cls.GREEN}[{'INFO'}] {cls.timestamp}:", text, cls.RESET)

    def yellow(cls, text):
        """打印黄色文本"""
        print(f"{cls.YELLOW}[{'WARNING'}] {cls.timestamp}:", text, cls.RESET)

    def blue(cls, text):
        """打印蓝色文本"""
        print(f"{cls.BLUE}[{'DEBUG'}] {cls.timestamp}:", text, cls.RESET)

    def purple(cls, text):
        """打印紫色文本"""
        print(f"{cls.PURPLE}[{'CRITICAL'}] {cls.timestamp}:", text, cls.RESET)


# 使用示例
smartLogger = SmartLogger()
smartLogger.red("错误信息")
smartLogger.green("成功信息")
smartLogger.yellow("警告信息")
smartLogger.blue("调试信息")
smartLogger.purple("紫色信息")


class TestClass:
    def __init__(self):
        self.name = "TestClass"

    def print_name(self):
        print(self.name)

    def __str__(self):
        return f"TestClass with name: {self.name}"


print(TestClass)

# 字典示例
d = {"name": "Alice", "age": 25}
print(f"字典地址: {id(d)}")

d["city"] = "Beijing"  # 原地添加键值对
print(f"添加后: {d}")
print(f"字典地址: {id(d)}")  # 地址不变
